package com.bdilab.iot.annotation;

import com.bdilab.iot.enums.OperationType;

import java.lang.annotation.*;

/**
 * @author WangNing
 * @version 1.0
 * @date 2020/8/1 12:51
 */
@Documented
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface LogOperation {

    /**
     * 操作名
     */
    String operationName() default "unknown";

    /**
     * 是否忽略结果
     */
    boolean ignoreOutput() default true;

    /**
     * 敏感参数
     * 日志会记录操作参数。 如果有敏感参数(例如密码等)，请忽略该参数
     */
    String[] sensitiveParams() default {};

    /**
     * 目标类型：CONTROLLER：controller日志, SERVICE：service日志, DAO：dao日志, METHOD：普通方法日志
     */
    OperationType operationType();

}
